﻿/*
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
//
//Description : Classe de base pour l'accès aux base de données
//Auteur : Marc-Eric Boisvert
//Date Création : 31 mars 2008
//Révisions:
//

namespace Framework.Data.DataBroker
{
    public abstract class BaseDataBroker : MarshalByRefObject, IDataBroker
    {

        #region "Membres"

        protected string _connectionString = null;
        protected IDbConnection _connection = null;
        
        #endregion

        #region "Constructeurs"

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="connectionString">The connection string to connect to the database</param>
        public BaseDataBroker(string connectionString = null)
        {
        	this._connectionString = connectionString;
        }
        #endregion

        #region "IDataBroker"
        
        public IDbConnection Connection
        {
        	get{ return this._connection;}
        }
        
        /// <summary>
        /// Open a connection to the database
        /// </summary>
        /// <returns>bool</returns>
        public abstract bool OpenConnection();
        
        /// <summary>
        /// Fonction qui exécute une commande sql et qui retourne un IDataReader
        /// </summary>
        /// <param name="SQLCommandText">Command Sql</param>
        /// <returns>IDataReader</returns>
        /// <remarks></remarks>
        public abstract System.Data.IDataReader ExecuteReader(string SQLCommandText, IDbConnection connection = null, Int32 fetchRowCount = 250);

        /// <summary>
        /// Fonction qui permet d'exécuter une commande sql
        /// </summary>
        /// <param name="SQLCommandText">Command sql</param>
        /// <returns>Integer</returns>
        /// <remarks></remarks>
        public abstract int ExecuteSQL(string SQLCommandText, IDbConnection connection = null );

        /// <summary>
        /// Fonction qui permet d'exécuter une commande sql et qui retourne la première colonne de la première ligne
        /// </summary>
        /// <param name="SQLCommandText">Command SQL</param>
        /// <returns>Object</returns>
        /// <remarks></remarks>
        public abstract object ExecuteScalar(string SQLCommandText, IDbConnection connection = null);


        #endregion
    }
}
*/